//
//  Reg1ViewController.m
//  KIASupervisory
//
//  Created by apple on 15/7/20.
//  Copyright (c) 2015年 MyCompany. All rights reserved.
//
#import "Reg1ViewController.h"
#import "Reg3ViewController.h"
#import "Reg2ViewController.h"
#import "LoginViewController.h"
#import "JKCountDownButton.h"
#import "CommonPickerViewController.h"
#import "CXAlertView.h"
#import <SMS_SDK/SMS_SDK.h>
#import <SMS_SDK/CountryAndAreaCode.h>

@interface Reg2ViewController ()<CommonPickerDelegate>

@property (nonatomic, strong) NSArray *_cityList;
@property (nonatomic, strong) UIButton *back;
@property (nonatomic, strong) CommonPickerViewController *picker;
@property (nonatomic, strong) NetworkManager *networkManager;
@property (weak, nonatomic) IBOutlet UILabel *cityLbl;
@property (weak, nonatomic) IBOutlet UILabel *cityIdLbl;
@property (weak, nonatomic) IBOutlet UILabel *xiaoquLbl;
@property (weak, nonatomic) IBOutlet UILabel *xiaoquIdLbl;
@property (weak, nonatomic) IBOutlet UITextField *phoneTxt;
@property (weak, nonatomic) IBOutlet UITextField *pwdTxt;
@property (weak, nonatomic) IBOutlet UITextField *repwdTxt;
@property (weak, nonatomic) IBOutlet UITextField *yanzm;
@property (nonatomic, strong) NSMutableArray *componentData;
@property (nonatomic, strong) NSMutableArray *cityIdData;
@property (nonatomic, strong) NSMutableArray *xiaoquData;
@property (nonatomic, strong) NSMutableArray *xiaoquIdData;
@property (nonatomic, strong) NSString *city_id;
@property (nonatomic, strong) MBProgressHUD *HUD;
@property (nonatomic, strong) UIToolbar *keyboardBar;
@property (nonatomic, assign) CGRect contentPreFrame;
@property (weak, nonatomic) IBOutlet UIView *contentView;

@end

@implementation Reg2ViewController
@synthesize check2 = _check2;

- (void)viewDidLoad
{
    [self.navigationController setNavigationBarHidden:YES];
    [super viewDidLoad];
    self.HUD = [[MBProgressHUD alloc] initWithView:self.view];
    [self.view addSubview:self.HUD];
    self.HUD.delegate = self;
    //    UIButton *checkbox = [UIButton buttonWithType:UIButtonTypeCustom];
    //
    //    CGRect checkboxRect = CGRectMake(135,150,36,36);
    //    [checkbox setFrame:checkboxRect];
    //
    //    [checkbox setImage:[UIImage imageNamed:@"checkbox_off.png"] forState:UIControlStateNormal];
    //    [checkbox setImage:[UIImage imageNamed:@"checkbox_on.png"] forState:UIControlStateSelected];
    //
    //    [checkbox addTarget:self action:@selector(checkboxClick:) forControlEvents:UIControlEventTouchUpInside];
    //    [self.view addSubview:checkbox];
    
    _check2 = [[QCheckBox alloc] initWithDelegate:self];
    _check2.frame = CGRectMake(40, 310, 100, 50);
    _check2.checked = YES;
    [_check2 setTitle:@"" forState:UIControlStateNormal];
    [_check2 setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
    [_check2.titleLabel setFont:[UIFont boldSystemFontOfSize:13.0f]];
    [self.view addSubview:_check2];
    
    [self addKeyboardNotificationForTarget:self];
    CGRect frame = self.contentView.frame;
    NSLog(@"*********pre frame:%@",NSStringFromCGRect(self.contentView.frame));
    self.contentPreFrame = frame;
    
    //定义一个toolBar
    UIToolbar
    * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
    //设置style
    [topView
     setBarStyle:UIBarStyleBlack];
    //定义两个flexibleSpace的button，放在toolBar上，这样完成按钮就会在最右边
    
    UIBarButtonItem
    * button1 =[[UIBarButtonItem  alloc]initWithBarButtonSystemItem:                                        UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    
    UIBarButtonItem
    * button2 = [[UIBarButtonItem  alloc]initWithBarButtonSystemItem:                                        UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    
    //定义完成按钮
    UIBarButtonItem
    * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"完成"style:UIBarButtonItemStyleDone
                                                  target:self action:@selector(resignKeyboard)];
    
    //在toolBar上加上这些按钮
    NSArray
    * buttonsArray = [NSArray arrayWithObjects:button1,button2,doneButton,nil];
    
    [topView
     setItems:buttonsArray];
    
    [self.phoneTxt setInputAccessoryView:topView];
    [self.pwdTxt setInputAccessoryView:topView];
    [self.repwdTxt setInputAccessoryView:topView];
    [self.yanzm setInputAccessoryView:topView];
    
}

//添加键盘监听事件
- (void)addKeyboardNotificationForTarget:(id)observer {
    //监听键盘切换
    NSLog(@"@@@@@@observer=====%@",observer);
    [[NSNotificationCenter defaultCenter] addObserver:observer
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:observer
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];
    //判断iphone版本,ios5中文键盘高度有改变，需要相应调整UI
#ifdef __IPHONE_5_0
    float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    if (version >= 5.0) {
        [[NSNotificationCenter defaultCenter] addObserver:observer
                                                 selector:@selector(keyboardWillShow:)
                                                     name:UIKeyboardWillChangeFrameNotification
                                                   object:nil];
    }
#endif
}


//监听键盘出现、消失和改变大小的事件。当切换至中文键盘，键盘高度改变时相应的改变键盘上方的控件
- (void)keyboardWillShow:(NSNotification*)notification {
    NSDictionary *userInfo = [notification userInfo];
    NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSTimeInterval animationDuration;
    [animationDurationValue getValue:&animationDuration];
    
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:animationDuration];
    
    CGRect frame = self.contentPreFrame;
    self.contentView.frame = CGRectMake(frame.origin.x, frame.origin.y - 110,
                                        frame.size.width, frame.size.height);
    
    
    [UIView commitAnimations];
}

- (void)keyboardWillHide:(NSNotification*)notification {
    NSDictionary *userInfo = [notification userInfo];
    NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSTimeInterval animationDuration;
    [animationDurationValue getValue:&animationDuration];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:animationDuration];
    self.contentView.frame = self.contentPreFrame;
    
    [UIView commitAnimations];
}


-(void)resignKeyboard
{
    
    [self.phoneTxt resignFirstResponder];
    [self.pwdTxt resignFirstResponder];
    [self.repwdTxt resignFirstResponder];
    [self.yanzm resignFirstResponder];
    
}

- (void)didSelectedCheckBox:(QCheckBox *)checkbox checked:(BOOL)checked {
    NSLog(@"did tap on CheckBox:%@ checked:%d", checkbox.titleLabel.text, checked);
}

- (IBAction)backToPre:(id)sender {
    Reg1ViewController *problemVC = (Reg1ViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"Reg1ViewController"];
    
    CATransition* transition = [CATransition animation];
    transition.type = kCATransitionPush;//可更改为其他方式
    transition.subtype = kCATransitionFromRight;//可更改为其他方式
    
    [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
    
    [self.navigationController pushViewController:problemVC animated:NO]; 


}


- (IBAction) toTiaoli:(id)sender {
    
    CXAlertView *alertView = [[CXAlertView alloc] initWithTitle:@"《服务条款》及《隐私政策》条款" message:@"    欢迎您使用盐城市大创科技有限公司提供的服务，请仔细阅读下列内容并在明确理解的前提下注册： 《智慧管家》的所有权和运营权归盐城市大创科技有限公司所有。为获得《智慧管家》所提供的相关服务，您需要同意本《服务条款》及《隐私政策》的全部条款并按照页面上的提示完成注册程序。如果您在注册过程中点击“我同意”按钮即表示完全接受本《服务条款》及《隐私政策》的所有内容，并且在知情的基础上明确同意盐城市大创科技有限公司按本《服务条款》及《隐私政策》的规定处理、使用和披露您及您用户的信息。如果您不接受本《服务条款》及《隐私政策》，请不要安装、使用、注册或以其他方式访问我们的服务 1、知识产权  《智慧管家》由盐城市大创科技有限公司开发。《智慧管家》的一切版权等知识产权，以及与《智慧管家》相关的所有信息内容，包括但不限于：文字表述及其组合、图标、图饰、图表、色彩、界面设计、版面框架、有关数据、印刷材料、或电子文档等均为盐城市大创科技有限公司所有，受中国著作权法和国际著作权条约以及其他知识产权法律法规的保护。 本《服务条款》未明示授权的其他一切权利仍归盐城市大创科技有限公司所有，您使用其他权利时须另外取得盐城市大创科技有限公司的书面同意。 2、服务内容  《智慧管家》的服务内容由盐城市大创科技有限公司根据实际情况提供给您，我们保留随时修改本《服务条款》及《隐私政策》的权利，并会在修改后于本页面公布修改后的文本，因此，请经常查看本页。如果您继续使用我们的服务，就视同接受我们对本《服务条款》及《隐私政策》的修改。 如因系统维护或升级的需要而需暂停网络服务，我们将尽可能亊先在重要页面进行通告，请您随时留意我们的页面。我们不保证服务一定能满足您的要求，也不保证服务不会中断、终止，我们对服务的及时性、安全性、准确性也都不作承诺。 请您就所有文件及数据做好备份，除非专门协议，我们不承担为您或您的用户保存任何文件的责任，因为服务中断或者终止等产生的损失由您及您的用户自行承担。如果因为您的用户向我们索赔以至于我们承担了赔偿责任的，您应当作为最终赔偿责任人。  3、使用规则  第一条，你需要在申请注册《智慧管家》时，先同意本《服务条款》及《隐私政策》，才能使用我们的服务。在您注册时，须要向我们提供准确的个人资料，如您使用服务期间个人资料有所变更，应及时向我们发出书面通知，以便我们能够及时维护您的账户，并为您提供相应服务，否则对于可能造成的损失将由您自行承担，我们也可能利用这些信息来通知您最新的产品更新和市场活动。 第二条，您注册成功后，我们将给予您相应的帐号及密码，该帐号和密码由您负责保管，请您不要将您的帐号、密码转让或出借予他人使用。如您发现您的帐号遭他人非法使用，应立即通知我们。如果您通过下载或其他方式使用了《智慧管家》，则您就认可了《智慧管家》可由我们随时升级、下载更新和用于改进、增强及进一步开发该开发工具包的其他功能。 第三条，您在使用我们提供的服务时，必须遵循以下原则：（1）不得危害国家安全、泄露国家秘密，不得侵犯国家社会集体的和公民的合法权益，不得制作、复制、查阅和传播下列信息：违反宪法确定的基本原则的；危害国家安全，泄漏国家机密，颠覆国家政权，破坏国家统一的；损害国家荣誉和利益的；煽动民族仇恨、民族歧视，破坏民族团结的；破坏国家宗教政策，宣扬邪教和封建迷信的；散布谣言，扰乱社会秩序，破坏社会稳定的；散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的；侮辱或者诽谤他人，侵害他人合法权益的；煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的；以非法民间组织名义活动的；含有法律、行政法规禁止的其它内容的。（2）不得用任何不正当手段损害我们及其他用户的利益及声誉。违反上述规定的，我们有权终止对您进行服务，并协助互联网有关行政机关等进行追索和查处。 第四条，我们保留在任何时候根据适用法律、法规、法律程序或政府要求的需要而披露任何信息，或由我们自主决定全部或部分地编辑、拒绝张贴或删除任何信息或资料的权利。 第五条，隐私权政策：为了给您提供更好的服务，当您使用或者启动《智慧管家》，服务器会自动记录一些信息，包括URL、IP地址、浏览器的类型和使用的语言以及访问日期和时间等。除了得到您的授权、或者相关政府部门根据法律法规的规定提出要求、或者您违反了本《服务条款》或《隐私政策》的约定的条款、或者维护我们合法权利的情况外，我们将不会泄露您的任何信息。具体隐私权政策按照我们的《隐私政策》内容执行。  第六条，《智慧管家》可能使用的第三方软件或技术，是受到合法授权的。因第三方软件或技术引发的任何纠纷，由该第三方负责解决，我们不承担任何责任。 我们不对第三方软件或技术提供客服支持，若您需要获取支持，请与该软件或技术提供商联系。 4、内容所有权  您在《智慧管家》上发布的信息内容我们双方共同所有，任何其他组织或个人未经我们授权同意，不得复制、转载、擅改其内容。 5、法律责任与免责   1.我们特别提醒您注意，为了保障公司业务发展和调整的自主权，我们拥有可能会随时自行修改或中断软件授权而且不能保证您一定会得到事先通知的权利。如有必要，修改或中断会以通告形式公布于我们网站重要页面上。   2.如您违反本《服务条款》、《隐私政策》或相关的服务条款的规定，导致或产生的任何第三方向我们及合作公司、关联公司主张的任何索赔、要求或损失，包括合理的诉讼费用和律师费用，您同意赔偿我们及其与合作公司、关联公司，并使之免受损害。对此，我们有权视您的行为性质，采取包括但不限于中断使用许可、停止提供服务、限制使用、法律追究等措施。  3.使用《智慧管家》由您自己承担风险，我们对《智慧管家》不作任何类型的担保，不论是明示的、默示的或法令的保证和条件，包括但不限于《智慧管家》的适销性、适用性、无病毒、无疏忽或无技术瑕疵问题、所有权、受益权、和无侵权的明示或默示担保和条件，对在任何情况下因使用或不能使用《智慧管家》所产生的直接、间接、偶然、特殊及后续的损害及风险，我们及合作单位不承担任何责任。 4.使用《智慧管家》涉及到互联网服务，可能会受到各个环节不稳定因素的影响，存在因不可抗力、计算机病毒、黑客攻击、系统不稳定、您所在位置、关机以及其他任何网络、技术、通信线路等原因造成的服务中断或不能满足要求的风险，您须明白并自行承担以上风险，我们不承担任何责任。 5.您因第三方如电信部门的通讯线路故障、技术问题、网络、电脑故障、系统不稳定性及其他各种不可抗力原因而遭受的经济损失，我们不承担任何责任。 6.因技术故障等不可抗力事件影响到服务的正常运行的，我们承诺在第一时间内与相关单位配合，及时处理进行修复，但您因此而遭受的经济损失，我们不承担任何责任。  7、其他条款  本《服务条款》所定的任何条款的部分或全部无效的，不影响其它条款的效力。本《服务条款》的解释、效力及纠纷的解决，适用于中华人民共和国法律。若您和我们之间发生任何纠纷或争议，首先应友好协商解决，协商不成的，您同意将纠纷或争议提交盐城市大创科技有限公司所在地有管辖权的法院诉讼解决。" cancelButtonTitle:nil];
    
    alertView.willShowHandler = ^(CXAlertView *alertView) {
        NSLog(@"%@, willShowHandler", alertView);
    };
    alertView.didShowHandler = ^(CXAlertView *alertView) {
        NSLog(@"%@, didShowHandler", alertView);
    };
    alertView.willDismissHandler = ^(CXAlertView *alertView) {
        NSLog(@"%@, willDismissHandler", alertView);
    };
    alertView.didDismissHandler = ^(CXAlertView *alertView) {
        NSLog(@"%@, didDismissHandler", alertView);
    };
    
    
    [alertView addButtonWithTitle:@"确认"
                             type:CXAlertViewButtonTypeDefault
                          handler:^(CXAlertView *alertView, CXAlertButtonItem *button) {
                              button.enabled = NO;
                              [button setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
                              [alertView addButtonWithTitle:@"OK"
                                                       type:CXAlertViewButtonTypeCancel
                                                    handler:^(CXAlertView *alertView, CXAlertButtonItem *button) {
                                                        [alertView dismiss];
                                                    }];
                          }];
    
    [alertView show];
    
    
}

- (IBAction)next:(id)sender {
    NSLog(@"@@@@@@@@@@@@@@@@getXiaoquList%d",_check2.checked);
    if(!_check2.checked){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:@"请先同意使用条例"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
    }
    
    if(self.phoneTxt.text == nil){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:@"请填写手机号"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
        
    } else if(self.pwdTxt.text == nil){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:@"请填写密码"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
        
    } else if(self.yanzm.text == nil){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:@"请填写短信验证码"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
        
    } else {
        if (self.networkManager == nil) {
            self.networkManager = [[NetworkManager alloc] init];
        }
        
        NSDictionary *param = [NSDictionary dictionaryWithObjectsAndKeys:
                               _xiaoqu_id,@"xiaoqu_id",self.yanzm.text,@"yzm",self.phoneTxt.text,@"phone",self.pwdTxt.text,@"pwd", nil];
        [self.HUD show:YES];
        [self.networkManager requestWithMethod:checkYzm parameter:param delegate:self];
        
    }
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)viewWillAppear:(BOOL)animated {
    
    [super viewWillAppear:animated];
    
    //    self.navigationController.navigationBarHidden = NO;
    
    //[self performSelector:@selector(getCityList) withObject:nil afterDelay:0.3];
}

- (void)network:(NetworkManager *)net methodId:(RequestMethodId)methodId didRequestFinishedWithResult:(id)data {
    [self.HUD hide:YES];
    //[self endRefresh];
    //self.isRefreshing = NO;
    
    NSLog(@"@@@@@@@@@@@@@@@@getvercode");
    if (methodId == checkYzm) {
        if ([data isKindOfClass:[NSDictionary class]]) {
            NSString * result = [data objectForKeyOrNil:@"result"];
            NSDictionary * vercode = [data objectForKeyOrNil:@"resultinfo"];
            if([result isEqualToString:@"000"]){
                NSLog(@"@@@@@@@@@@@@@@%@",vercode);
                NSInteger status = [[vercode objectForKeyOrNil:@"status"] integerValue];
                NSLog(@"@@@@@@@@@@@@@@%d",status);
                if (status == 200) {
                    Reg3ViewController *reportVC = (Reg3ViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"Reg3ViewController"];
                    reportVC.phone = self.phoneTxt.text;
                    [self.navigationController pushViewController:reportVC animated:YES];
                    
                } else {
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                                    message:@"短信验证码输入不正确"
                                                                   delegate:nil
                                                          cancelButtonTitle:@"确定"
                                                          otherButtonTitles:nil];
                    [alert show];
                    
                }
            } else if([result isEqualToString:@"001"]){
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                                message:@"该手机号已注册，请选择其他号码"
                                                               delegate:nil
                                                      cancelButtonTitle:@"确定"
                                                      otherButtonTitles:nil];
                [alert show];
            } else if([result isEqualToString:@"002"]){
//                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
//                                                                message:@"短信验证码输入不正确"
//                                                               delegate:nil
//                                                      cancelButtonTitle:@"确定"
//                                                      otherButtonTitles:nil];
//                [alert show];
                Reg3ViewController *reportVC = (Reg3ViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"Reg3ViewController"];
                reportVC.phone = self.phoneTxt.text;
                [self.navigationController pushViewController:reportVC animated:YES];
            }
            
            
        }
        
    }
}

- (void)network:(NetworkManager *)net methodId:(RequestMethodId)methodId didRequestFailedWithError:(NSError *)error {
    //[self.HUD hide:YES];
    //[self endRefresh];
    //self.isRefreshing = NO;
    
    NSDictionary *errorInfo = error.userInfo;
    NSString *msg = [errorInfo objectForKeyOrNil:@"errorMsg"];
    
    NSInteger code = error.code;
    if (code != 1) {
        if ([msg length] == 0) {
            msg = @"数据问题获取失败，请稍后重试";
        }
    }
    
    if ([msg length] > 0) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:msg
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
    }
}


#pragma mark - CommonPickerDelegate
- (void)picker:(CommonPickerViewController *)picker didSelectedItemIndexSet:(NSDictionary *)selectedItems {
    NSInteger index = [[selectedItems objectForKey:[NSNumber numberWithInt:0]] integerValue];
    
    NSInteger tag = picker.view.tag;
    if (tag == 20005) {
        self.cityLbl.text = [_componentData objectAtIndex:index];
        NSLog(@"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@11111@%@",[_cityIdData objectAtIndex:index]);
        _city_id  = [_cityIdData objectAtIndex:index];
        NSLog(@"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2222222");
        //        NSDictionary *param = [NSDictionary dictionaryWithObjectsAndKeys:
        //                                idStr,@"city_id", nil];
        //        [self.networkManager requestWithMethod:getXiaoquList parameter:param delegate:self];
    } else if (tag == 20006){
        self.xiaoquLbl.text = [_xiaoquData objectAtIndex:index];
        //self.xiaoquIdLbl.text = [_xiaoquIdData objectAtIndex:index];
        _xiaoqu_id = [_xiaoquIdData objectAtIndex:index];
    }
}

- (IBAction)checkPhone:(id)sender {
    BOOL isMatch = [self validateMobile:self.phoneTxt.text];
    if(!isMatch){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:@"请输入正确的手机号"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
    }
}

// 密码验证
- (IBAction)checkPwd:(id)sender {
    if (![self isBlankString:self.pwdTxt.text]) {
        NSString *regex =[NSString stringWithFormat:@"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,20}$"];
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
        BOOL isMatch = [predicate evaluateWithObject:self.pwdTxt.text];
        
        if(!isMatch){
            NSString *regex2 =[NSString stringWithFormat:@"^[0-9A-Za-z]{4,20}$"];
            NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
            BOOL isMatch2 = [predicate2 evaluateWithObject:self.pwdTxt.text];
            NSString *msm = @"输入不正确，密码必须包含字母和数字且4-20位";
            if(isMatch2){
                msm = @"密码不能全为数字或字母";
            }
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                            message:msm
                                                           delegate:nil
                                                  cancelButtonTitle:@"确定"
                                                  otherButtonTitles:nil];
            [alert show];
            return;
        } else if(![self isBlankString:self.repwdTxt.text] && ![self.repwdTxt.text isEqualToString:(self.pwdTxt.text)]){
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                            message:@"两次密码不一致"
                                                           delegate:nil
                                                  cancelButtonTitle:@"确定"
                                                  otherButtonTitles:nil];
            [alert show];
            return;
        }
    }
    
}

//确认密码验证
- (IBAction)checkRePwd:(id)sender {
    NSLog(@"@@@@@@@@%d",![self isBlankString:self.pwdTxt.text]);
    NSLog(@"@@@@@@@@%d",![self isBlankString:self.repwdTxt.text]);
    if (![self isBlankString:self.repwdTxt.text]) {
        NSString *regex =[NSString stringWithFormat:@"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,20}$"];
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
        BOOL isMatch = [predicate evaluateWithObject:self.repwdTxt.text];
        
        if(!isMatch){
            NSString *regex2 =[NSString stringWithFormat:@"^[0-9A-Za-z]{4,20}$"];
            NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
            BOOL isMatch2 = [predicate2 evaluateWithObject:self.repwdTxt.text];
            
            NSString *msm = @"输入不正确，密码必须包含字母和数字且4-20位";
            if(isMatch2){
                msm = @"密码不能全为数字或字母";
            }
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                            message:msm
                                                           delegate:nil
                                                  cancelButtonTitle:@"确定"
                                                  otherButtonTitles:nil];
            [alert show];
            return;
        } else if(![self isBlankString:self.pwdTxt.text] && ![self.repwdTxt.text isEqualToString:(self.pwdTxt.text)]){
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                            message:@"两次密码不一致"
                                                           delegate:nil
                                                  cancelButtonTitle:@"确定"
                                                  otherButtonTitles:nil];
            [alert show];
            return;
        }
        
    }
}

//发送验证码
- (IBAction)countDownXibTouched:(JKCountDownButton*)sender {
    BOOL isMatch = [self validateMobile:self.phoneTxt.text];
    if(!isMatch){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:@"请输入正确的手机号"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        return;
    }
    
    [SMS_SDK getVerificationCodeBySMSWithPhone:self.phoneTxt.text
                                          zone:@"86"
                                        result:^(SMS_SDKError *error)
     {
         if (!error)
         {
             //                         [self presentViewController:verify animated:YES completion:^{
             //                             ;
             //                         }];
         }
         else
         {
             UIAlertView* alert=[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"codesenderrtitle", nil)
                                                           message:[NSString stringWithFormat:@"状态码：%zi ,错误描述：%@",error.errorCode,error.errorDescription]
                                                          delegate:self
                                                 cancelButtonTitle:NSLocalizedString(@"sure", nil)
                                                 otherButtonTitles:nil, nil];
             [alert show];
         }
         
     }];
    
    
    
    sender.enabled = NO;
    //button type要 设置成custom 否则会闪动
    [sender startWithSecond:60];
    
    [sender didChange:^NSString *(JKCountDownButton *countDownButton,int second) {
        NSString *title = [NSString stringWithFormat:@"剩余%d秒",second];
        return title;
    }];
    [sender didFinished:^NSString *(JKCountDownButton *countDownButton, int second) {
        countDownButton.enabled = YES;
        return @"重新获取";
        
    }];
}

- (BOOL) isBlankString:(NSString *)string {
    if (string == nil || string == NULL) {
        return YES;
    }
    if ([string isKindOfClass:[NSNull class]]) {
        return YES;
    }
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
        return YES;
    }
    return NO;
}

- (BOOL)validateMobile:(NSString *)mobileNum
{
    /**
     * 手机号码
     * 移动 ：134、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、147、178、1705
     
       电信：180、189、181、153、133、177
     
        联通：130、131、132、152、155、156、185、186、145、175、1708
     */
    NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
    /**
     10         * 中国移动：China Mobile
     11         * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,183,187,188
     12         */
    NSString * CM = @"^1(34[0-8]|705|(3[5-9]|5[0127-9]|8[23478]|47|78|)\\d)\\d{7}$";
    /**
     15         * 中国联通：China Unicom
     16         * 130,131,132,152,155,156,185,186、145、175、1708
     17         */
    NSString * CU = @"^1(708|(3[0-2]|45|75|5[256]|8[56])\\d{8})\\d{7}$";
    /**
     20         * 中国电信：China Telecom
     21         * 133,1349,153,180,189,181,177
     22         */
    NSString * CT = @"^1((33|77|53|8[019])[0-9]|349)\\d{7}$";
    /**
     25         * 大陆地区固话及小灵通
     26         * 区号：010,020,021,022,023,024,025,027,028,029
     27         * 号码：七位或八位
     28         */
    // NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
    
    NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
    NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
    NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
    NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
    
    if (([regextestmobile evaluateWithObject:mobileNum] == YES)
        || ([regextestcm evaluateWithObject:mobileNum] == YES)
        || ([regextestct evaluateWithObject:mobileNum] == YES)
        || ([regextestcu evaluateWithObject:mobileNum] == YES))
    {
        return YES;
    }
    else
    {
        return NO;
    }
}

@end

